package edu.kufpg.armatus.dialog; import java.util.List; import net.simonvt.numberpicker.NumberPicker; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Button; import edu.kufpg.armatus.R; import edu.kufpg.armatus.console.ConsoleActivity; public class ScrollEntriesDialog extends ConsiderateDialog { private int mEntryChoice; private String[] mEntries; public static ScrollEntriesDialog newInstance(int entryChoice, List<String> entries) { ScrollEntriesDialog sed = new ScrollEntriesDialog(); Bundle args = new Bundle(); args.putInt("entryChoice", entryChoice); String[] entriesArr = entries.toArray(new String[entries.size()]); entriesArr[entriesArr.length - 1] = "<no input>"; args.putStringArray("entries", entriesArr); sed.setArguments(args); return sed; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mEntryChoice = getArguments().getInt("entryChoice"); mEntries = getArguments().getStringArray("entries"); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { super.onCreateView(inflater, container, savedInstanceState); View v = inflater.inflate(R.layout.console_scroll_entries_dialog, container, false); getDialog().setTitle("User input history selection"); setCancelable(true); final NumberPicker picker = (NumberPicker) v.findViewById(R.id.console_scroll_entries_picker); picker.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS); picker.setMinValue(0); picker.setMaxValue(mEntries.length - 1); picker.setDisplayedValues(mEntries); picker.setValue(mEntryChoice); picker.setTypeface(ConsoleActivity.TYPEFACE); picker.setWrapSelectorWheel(false); Button confirm = (Button) v.findViewById(R.id.console_scroll_entries_confirm); confirm.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { getConsole().selectFromUserInputHistory(picker.getValue()); dismiss(); } }); return v; } }